/*
wait函数

#include <sys/types.h>
#include <sys/wait.h>

pid_t wait(int *wstatus);
功能：
    挂起当前进程，直到其一个子进程结束执行。若子进程已经结束，wait会立即返回。
参数：
    wstatus：这是一个指向证书的指针，用于存储子进程的退出状态。如果不需要获取退出状态，
                可以传入NULL。
返回值：
    成功：返回一种值得子进程的进程ID
    失败：返回-1，并设置errno来指示错误原因，例如当前进程没有子进程时
*/
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>
#include "head.h"

int main(int argc,char const *argv[])
{
    pid_t pid=0;
    if(-1==(pid=fork()))
    {
        perror("fork error");
        return 0;
    }
    else if(0<pid)
    {
        printf("我是父进程\n");
        sleep(1);
        wait(NULL);// 等待子进程结束
    }
    else if(pid==0)
    {
        printf("我是子进程\n");
        sleep(5);//模拟子进程工作
        printf("子进程结束\n");
        exit(0);
    }

    printf("子进程退出成功\n");
    while(1)
    {
        sleep(1);
    }
}